//
//  NSDate＋Extension.swift
//  Sina15
//
//  Created by 盼 on 16/4/16.
//  Copyright © 2016年 pan. All rights reserved.
//

import Foundation

extension NSDate {
    
    //把日期转换成字符串
  class func sinaDate(dateString: String)-> NSDate? {
        
        dateDF.dateFormat = "EEE MMM dd HH:mm:ss zzz yyyy"
        
        dateDF.locale = NSLocale(localeIdentifier: "en")
        
        let sinaDate = dateDF.dateFromString(dateString)
        
        return sinaDate
    }
    
    
    
    /*
    刚刚(一分钟内)
    X分钟前(一小时内)
    X小时前(当天)
    ---------------------------------------------
    昨天 HH:mm(昨天)
    MM-dd HH:mm(一年内)
    yyyy-MM-dd HH:mm(更早期)
    NSCelander  日历对象  提供了非常丰富的日期处理函数
    */
    
    //把字符串转换成日期对象
    func fullDescription()->String{
        let cl = NSCalendar.currentCalendar()
        
        if cl.isDateInToday(self) {
           //今天
            let delta = Int(NSDate().timeIntervalSinceDate(self))
            
            if delta < 60 {
                return "刚刚"
            }else if delta < 60 * 60 {
                return "\(delta/60)分钟前"
            }else {
                return "\(delta/3600)小时前"
            }
        }else {
            
            let common = "HH:mm"
            
            if cl.isDateInYesterday(self){
                 //昨天
                dateDF.dateFormat = "昨天" + common
            }else{
                //非昨天
                //把系统当前日期和传递过来的日期比较，判断之间隔了多少年
                let result = cl.components(.Year, fromDate: self, toDate: NSDate(), options: [])
                
                if result.year == 0 {
                    //当年
                    dateDF.dateFormat = "MM-dd" + common
                }else{
                    //非当年
                    dateDF.dateFormat = "yyyy-MM-dd" + common
                }
            }
        }
        let str = dateDF.stringFromDate(self)
        return str
    }
    
}